﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Library;
using System.ServiceModel;

namespace Thi
{
    public partial class FrmChonMonThi : Form
    {
        public static string Manguoidung = "";
        public static string Tennguoidung = "";
        public static DataTable CauHinhBangDiem = new DataTable();
        svDangNhap.LoginClient sv;
        //FrmChatClient frmChat;
        string User = "";

        public FrmChonMonThi(FrmChatClient frmChat, string User, string Manguoidung, string Tennguoidung, DataTable CauHinhBangDiem)
        {
            InitializeComponent();
            FrmChonMonThi.Manguoidung = Manguoidung;
            FrmChonMonThi.Tennguoidung = Manguoidung;
            FrmChonMonThi.CauHinhBangDiem = CauHinhBangDiem;
            this.User = User;
            //this.frmChat = frmChat;
            LoadGrid();
            timer1.Start();
        }
        private void LoadGrid()
        {          
            try
            {
                sv = new Thi.svDangNhap.LoginClient();
                DataTable dt = sv.MonThi(FrmChonMonThi.Manguoidung);
                dataGridView1.AutoGenerateColumns = false;
                dataGridView1.DataSource = dt;
                txtthongbao.Text = "";
            }
            catch (Exception)
            {
                txtthongbao.Text = "Kết nối tới sever không thành công";
                txtthongbao.ForeColor = Color.Red;
            }
            finally
            {
                if (sv.State != CommunicationState.Faulted)
                    sv.Close();
            }
        }

        private void button6_Click(object sender, EventArgs e)
        {
            try
            {
                sv = new Thi.svDangNhap.LoginClient();
                sv.UserExit(Manguoidung,Manguoidung);

                //frmChat.btnDisconnect_Click(null, null);


                Application.Exit();
            }
            catch (Exception)
            {
                if (sv.State != CommunicationState.Faulted)
                    sv.Close();
            }
        
        }

        private void dataGridView1_DoubleClick(object sender, EventArgs e)
        {
            try
            {
                //Kiem tra thi
                sv = new Thi.svDangNhap.LoginClient();
                int idtruycap = sv.GetIDTruyCap(Manguoidung);
                bool KTTHI = sv.KiemTraChoPhepThi(idtruycap.ToString());

                if (KTTHI)
                {
                    this.Hide();
                    string msMon = dataGridView1.CurrentRow.Cells[0].Value.ToString();
                    //Ghi chu truoc va sau khi thi               
                    // DataTable dtghichu = sv.GhiChuTruocVaSauKhi(msMon);
                    //Bo sung
                    DataTable tb_masodethi = null;
                    try
                    {
                        sv = new Thi.svDangNhap.LoginClient();
                        tb_masodethi = sv.GhiChuTruocVaSauKhi(Manguoidung,msMon); //mLibrary.GetDataTable("select * from tb_masodethi where MS_Mondaotao=16", "tb_masodethi");
                        txtthongbao.Text = "";
                    }
                    catch (Exception)
                    {
                        txtthongbao.Text = "Kết nối tới sever không thành công";
                        txtthongbao.ForeColor = Color.Red;
                    }
                    finally
                    {
                        if (sv.State != CommunicationState.Faulted)
                            sv.Close();
                    }



                    DataTable tb_hssvthi = null;
                    try
                    {
                        sv = new Thi.svDangNhap.LoginClient();
                        string a = dataGridView1.CurrentRow.Cells["ms_hssvthi"].Value.ToString();
                        string b = dataGridView1.CurrentRow.Cells["clop"].Value.ToString().TrimEnd();
                        string c = Manguoidung.TrimEnd();
                        string d = dataGridView1.CurrentRow.Cells["clanthi"].Value.ToString();
                        tb_hssvthi = sv.ThongTinSauThi(Manguoidung, a, b, c,
                                                msMon, d);
                        txtthongbao.Text = "";
                    }
                    catch (Exception)
                    {
                        txtthongbao.Text = "Kết nối tới sever không thành công";
                        txtthongbao.ForeColor = Color.Red;
                    }
                    finally
                    {
                        if (sv.State != CommunicationState.Faulted)
                            sv.Close();
                    }
                    //mLibrary.GetDataTable("select * from dbo.tb_hssvthi where MS_hssvthi=34 " +
                    //" and MS_Lop='10-12A1' and MS_hssv='TEST123' " +
                    //  " and MS_Mondaotao=16 and  MS_loaithi=2", "tb_hssvthi");
                    //
                    string TenSV = "";
                    try
                    {
                        sv = new Thi.svDangNhap.LoginClient();
                        TenSV = sv.GetTenSinhVien(User);
                        txtthongbao.Text = "";
                    }
                    catch (Exception)
                    {
                        txtthongbao.Text = "Kết nối tới sever không thành công";
                        txtthongbao.ForeColor = Color.Red;
                    }
                    finally
                    {
                        if (sv.State != CommunicationState.Faulted)
                            sv.Close();
                    }

                    //Tao data thi khi chon mon
                    try
                    {
                        sv = new Thi.svDangNhap.LoginClient();
                        sv.TaoDataKhiChonMon(FrmChonMonThi.Manguoidung,dataGridView1.CurrentRow.Cells["ms_hssvthi"].Value.ToString(),
                            tb_masodethi.Rows[0]["ms_mondaotao"].ToString(), int.Parse(tb_masodethi.Rows[0]["soluongcauhoi"].ToString()),
                            dataGridView1.CurrentRow.Cells["clanthi"].Value.ToString());
                        txtthongbao.Text = "";

                    }
                    catch (Exception)
                    {
                        txtthongbao.Text = "Kết nối tới sever không thành công";
                        txtthongbao.ForeColor = Color.Red;
                    }
                    finally
                    {
                        if (sv.State != CommunicationState.Faulted)
                            sv.Close();
                    }

                    FrmGioiThieu f = new FrmGioiThieu(dataGridView1.CurrentRow.Cells["cMon"].Value.ToString().Trim(),
                           dataGridView1.CurrentRow.Cells["cHinhthucthi"].Value.ToString().Trim(), TenSV.Trim(),
                        tb_masodethi, tb_hssvthi);

                    f.Show();
                }
                else
                    MessageBox.Show("Bạn chưa được giám thị cho phép thi. \n Vui lòng đợi trong giây lát", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
            catch (Exception)
            {
                txtthongbao.Text = "Kết nối tới sever không thành công";
                txtthongbao.ForeColor = Color.Red;
            }

            finally
            {
                if (sv.State != CommunicationState.Faulted)
                    sv.Close();
            }
        }




        private void sapxeptheoms_CheckedChanged(object sender, EventArgs e)
        {
            if (sapxeptheoms.Checked)
                label1.Text = "Hiển thị toàn bộ môn chưa thi bao gồm những môn chưa đến ngày thi";
            else
                label1.Text = "Nhấp chuột đôi vào môn thi để tải đề thi";
        }

      

        private void FrmChonMonThi_FormClosed(object sender, FormClosedEventArgs e)
        {
            button6_Click(null, null);
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            try
            {
                sv = new Thi.svDangNhap.LoginClient();
                int idtruycap = sv.GetIDTruyCap(Manguoidung);
                bool s = sv.KiemTraChoPhepThi(idtruycap.ToString());
                if (s)
                {
                    timer1.Stop();
                    MessageBox.Show("Bạn đã được giám thị cho phép thi. \n Hãy vào phòng thi", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception)
            {
              
            }
            finally
            {
                if (sv.State != CommunicationState.Faulted)
                    sv.Close();
            }        
         
        }

     

    }
}
